package com.meitianhui.convenitenbuy.module.home.http;

import com.meitianhui.convenitenbuy.base.BaseResponse;
import com.meitianhui.convenitenbuy.main.model.bean.SignInfo;
import com.meitianhui.convenitenbuy.module.home.model.bean.AreaCode;
import com.meitianhui.convenitenbuy.module.home.model.bean.BannerBean;
import com.meitianhui.convenitenbuy.module.home.model.bean.FightGroupAddress;
import com.meitianhui.convenitenbuy.module.home.model.bean.FreePaper;
import com.meitianhui.convenitenbuy.module.home.model.bean.GoodsInfoDetail;
import com.meitianhui.convenitenbuy.module.home.model.bean.HomeGoodsInfo;
import com.meitianhui.convenitenbuy.module.home.model.bean.MemberInfo;
import com.meitianhui.convenitenbuy.module.home.model.bean.OfficialStore;
import com.meitianhui.convenitenbuy.module.home.model.bean.RecommendGoods;
import com.meitianhui.convenitenbuy.module.home.model.bean.SetUpOrderBean;
import com.meitianhui.convenitenbuy.module.home.model.bean.ZeroBuyImage;
import com.meitianhui.convenitenbuy.module.order.model.bean.EmptyInfo;
import com.meitianhui.convenitenbuy.module.wallet.model.RechargeBackInfoBean;

import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
 * Created by Administrator on 2017/11/1.
 */

public interface HomeApi {

    /**
     * 通过经纬度查询区域code
     */
    @POST("member")
    Observable<BaseResponse<AreaCode>> getAreaCode(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

    @POST("goods")
    Observable<BaseResponse<BannerBean>> getBanner(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取推荐商品  包括今日和限时
     */
    @POST("goods")
    Observable<BaseResponse<RecommendGoods>> getRecommendGoods(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取商品信息
     */
    @POST("goods")
    Observable<BaseResponse<HomeGoodsInfo>> getEdinburgh(@Query("app_token") String appToken, @Query("service") String service, @Query("page") String page, @Query("params") String params);

    /**
     * 签到
     */
    @POST("member")
    Observable<BaseResponse<SignInfo>> signInToday(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取每天惠官方旗舰店
     */
    @POST("member")
    Observable<BaseResponse<OfficialStore>> getOfficialStore(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 提交店铺 生成订单
     * 超级返提交
     */
    @POST("opsorder")
    Observable<BaseResponse<EmptyInfo>> officialStorePost(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 免单券
     */
    @POST("opsorder")
    Observable<BaseResponse<EmptyInfo>> freeCouponPay(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取每天惠官方旗舰店
     */
    @POST("member")
    Observable<BaseResponse<OfficialStore>> settingDefaultStore(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取商品详细信息
     */
    @POST("goods")
    Observable<BaseResponse<GoodsInfoDetail>> getGoodsInfoDetail(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取参团商品详细信息
     */
    @POST("opsorder")
    Observable<BaseResponse<GoodsInfoDetail>> getJoinGoodsInfoDetail(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取地址  导购相关信息
     */
    @POST("member")
    Observable<BaseResponse<FightGroupAddress>> getFightGroupAddress(@Query("user_token") String userToken, @Query("service") String service, @Query("page") String page, @Query("params") String params);

    /**
     * 获取免单卷
     */
    @POST("goods")
    Observable<BaseResponse<FreePaper>> getFreePaper(@Query("app_token") String appToken, @Query("service") String service, @Query("page") String page, @Query("params") String params);

    /**
     * 获取用户信息
     */
    @POST("member")
    Observable<BaseResponse<MemberInfo>> getMemberInfo(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取店铺详细信息
     */
    @POST("member")
    Observable<BaseResponse<OfficialStore>> getStoreInfo(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 收藏店铺
     * @param service stores.consumer.favoriteStore
     */
    @POST("member")
    Observable<BaseResponse<EmptyInfo>> collectStore(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

    /**
     * 积分支付状态
     */
    @POST("goods")
    Observable<BaseResponse<EmptyInfo>> payIntegration(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 使用积分支付
     */
    @POST("finance")
    Observable<BaseResponse<EmptyInfo>> userIntegrationPay(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    @POST("opsorder")
    Observable<BaseResponse<SetUpOrderBean>> setUpOrder(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    // 会过支付
    @POST("finance")
    Observable<BaseResponse<RechargeBackInfoBean>> payMoneyHuiGuo(@Query("user_token") String userToken, @Query("service") String service, @Query("params") String params);

    /**
     * 获取 0元购 的banner图片。
     */
    @POST("goods")
    Observable<BaseResponse<ZeroBuyImage>> getZeroBuyImage(@Query("app_token") String appToken, @Query("service") String service, @Query("params") String params);

}
